import java.sql.SQLException;
import java.util.Calendar;
//import java.util.List;


public class MainGeradorSenha {
	
	private Senha novaSenha;
	private Senha senhaAtual;
	private int baseType;
	
	MainGeradorSenha(int baseType) {
		this.setBaseType(baseType);
		SenhaDAO senhaDAO = new SenhaDAO(this.getBaseType());
		try {
			this.senhaAtual = senhaDAO.getLast();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public void setBaseType(int baseType) {
		this.baseType = baseType;
	}
	
	public int getBaseType() {
		return this.baseType;
	}
	
	public void gerar() {
		SenhaDAO senhaDAO = new SenhaDAO(this.getBaseType());
		
//		List<Senha> senhas = senhaDAO.getList();
//		
//		for (int i = 0; i < senhas.size(); i++) {
//			Senha s = senhas.get(i);
//			System.out.println(s.getSenha() + " :: " + s.getSenhaAntiga());
//		}

		this.novaSenha = new Senha();
		try {
//			this.senhaAtual = senhaDAO.getLast();
		
//			System.out.println(this.senhaAtual.getSenha() + " :: " + this.senhaAtual.getSenhaAntiga());
			
			this.novaSenha.setSenhaAntiga(this.senhaAtual.getSenha());
			this.novaSenha.setSenha(GeradorSenha.gerar());
			
			Calendar date = Calendar.getInstance();
			this.novaSenha.setAtualizacao(date);
			
			senhaDAO.grava(this.novaSenha);
			
//			System.out.println("Nova Senha: " + novaSenha.getSenhaAtual());
		
			senhaDAO.close();
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public String getNovaSenha() {
		return this.novaSenha.getSenha();
	}
	
	public String getSenhaAtual() {
		return this.senhaAtual.getSenha();
	}
}
